অ্যাপাচি অ্যাকটিভএমকিউ মেসেজ নির্বাচনের (Message Selection) জন্য একটি শক্তিশালী ব্যবস্থা প্রদান করে, যা Message Selectors এবং Filters এর মাধ্যমে মেসেজগুলিকে নির্দিষ্ট শর্ত অনুযায়ী নির্বাচন করতে সহায়ক। এই ব্যবস্থা মেসেজ কনসিউমারের জন্য নির্দিষ্ট মেসেজগুলো গ্রহণ করার প্রক্রিয়াকে সহজ করে, যাতে তারা শুধু প্রয়োজনীয় মেসেজগুলোই প্রক্রিয়া করতে পারে। এটি সিস্টেমের পারফরম্যান্স এবং দক্ষতা বৃদ্ধি করে।
Message Selectors হল একটি বৈশিষ্ট্য যা মেসেজ কনসিউমারকে মেসেজের নির্দিষ্ট সেট নির্বাচন করতে সাহায্য করে, যেখানে কনসিউমার শুধুমাত্র সেই মেসেজগুলো গ্রহণ করবে যেগুলির মধ্যে নির্দিষ্ট শর্ত মেলে। এটি Java Message Service (JMS) API এর অংশ, এবং এটি SQL-এর মতো সিলেকশন স্টেটমেন্ট ব্যবহার করে মেসেজগুলো ফিল্টার করার জন্য ব্যবহৃত হয়।
মেসেজ সিলেক্টরটি একটি JMSSelector
স্ট্রিং, যা SQL92-like syntax ব্যবহার করে তৈরি হয়। এটি প্রযোজ্য হয়ে থাকে মেসেজের প্রপার্টি, প্রপার্টি ভ্যালু এবং অন্যান্য মেসেজ বৈশিষ্ট্যের ওপর।
উদাহরণস্বরূপ:
"JMSCorrelationID = '12345'"
JMSCorrelationID
মেসেজের একটি প্রপার্টি এবং এটি 12345
এর সমান হতে হবে যাতে মেসেজটি নির্বাচিত হয়।এখানে একটি উদাহরণ দেওয়া হল, যেখানে একটি মেসেজ সিলেক্টর কিউ থেকে শুধুমাত্র নির্দিষ্ট প্রপার্টির ভিত্তিতে মেসেজ গ্রহণ করতে ব্যবহৃত হয়:
// Create a connection factory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
// Create a connection
Connection connection = connectionFactory.createConnection();
connection.start();
// Create a session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create destination (queue or topic)
Destination destination = session.createQueue("TEST.QUEUE");
// Create a message selector (filter messages based on JMSCorrelationID)
String selector = "JMSCorrelationID = '12345'";
// Create consumer with the selector
MessageConsumer consumer = session.createConsumer(destination, selector);
// Receive messages
Message message = consumer.receive();
// Process the message
if (message != null) {
// Handle the message
System.out.println("Received Message: " + ((TextMessage) message).getText());
}
এখানে, JMSCorrelationID = '12345'
মেসেজ সিলেক্টর হিসাবে ব্যবহৃত হয়েছে, যা কিউ থেকে শুধু সেই মেসেজগুলোকে গ্রহণ করবে যেগুলোর JMSCorrelationID
প্রপার্টি '12345'
।
priority > 5
: priority
প্রপার্টি ৫ এর বেশি হলে মেসেজ নির্বাচন করা হবে।type = 'urgent'
: মেসেজটির type
প্রপার্টি 'urgent'
হলে মেসেজটি নির্বাচিত হবে।timestamp >= '2024-01-01'
: মেসেজের টাইমস্ট্যাম্প যদি ২০২৪ সালের জানুয়ারি ১ তারিখের সমান বা তার পরে থাকে, তবে মেসেজটি নির্বাচিত হবে।ফিল্টারিং হল মেসেজের নির্দিষ্ট সেট নির্বাচন করার প্রক্রিয়া, যা মেসেজ কনসিউমারদের উদ্দেশ্য অনুযায়ী উপকারী হতে পারে। Filters মেসেজ সিলেক্টরের মতো হলেও এগুলো সাধারণত বেশি জটিল শর্ত বা কন্ডিশনের জন্য ব্যবহৃত হয়।
ফিল্টারগুলো সাধারণত MessageListener
ইন্টারফেস বা কাস্টম ফিল্টারিং সিস্টেম ব্যবহার করে কিউ বা টপিক থেকে মেসেজ নির্বাচন করতে পারে। এটি মেসেজের প্রপার্টি এবং কনটেন্টের ওপর নির্ভর করে কাজ করে।
যদি আপনি শুধুমাত্র সেই মেসেজগুলো দেখতে চান যা একটি নির্দিষ্ট টাইপের হয়, তবে আপনি একটি কাস্টম ফিল্টার সেট করতে পারেন, যেমন:
public class MyMessageListener implements MessageListener {
public void onMessage(Message message) {
try {
// Extract properties or content from message
String messageType = message.getStringProperty("type");
if ("urgent".equals(messageType)) {
// Process the urgent message
System.out.println("Received urgent message: " + ((TextMessage) message).getText());
}
} catch (JMSException e) {
e.printStackTrace();
}
}
}
এখানে, শুধুমাত্র সেই মেসেজগুলো গ্রহণ করা হচ্ছে যেগুলোর type
প্রপার্টি 'urgent'
।
অ্যাপাচি অ্যাকটিভএমকিউ কাস্টম ফিল্টারগুলি খুবই ফ্লেক্সিবল এবং আপনার প্রয়োজন অনুসারে কাস্টম কন্ডিশন বা ফিল্টার ক্রাইটেরিয়া সেট করা যেতে পারে। এটি ব্যবহারকারীর প্রয়োজন অনুযায়ী উন্নত ফিল্টারিং সক্ষম করে।
Message Selectors এবং Filters হল দুটি গুরুত্বপূর্ণ কনসেপ্ট, যা অ্যাপাচি অ্যাকটিভএমকিউ তে মেসেজ প্রক্রিয়াকরণের কার্যকারিতা এবং দক্ষতা বাড়াতে সহায়ক। মেসেজ সিলেক্টর ব্যবহার করে আপনি কিউ থেকে শুধুমাত্র নির্দিষ্ট শর্তের ভিত্তিতে মেসেজ গ্রহণ করতে পারবেন, যা মেসেজ সিস্টেমের অপারেশনাল পারফরম্যান্স উন্নত করতে সহায়ক। Filters এর মাধ্যমে আরও জটিল শর্তাবলীর ভিত্তিতে মেসেজ নির্বাচন করা সম্ভব, যা ডিস্ট্রিবিউটেড সিস্টেমে মেসেজ ম্যানিপুলেশনকে আরও কাস্টমাইজ করতে সাহায্য করে।
Message Selector অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) এর একটি শক্তিশালী বৈশিষ্ট্য, যা মেসেজ কনজিউমারদের মেসেজ ফিল্টার করার সক্ষমতা প্রদান করে। এটি একটি SQL-like query ব্যবহার করে কনজিউমারকে নির্দিষ্ট ধরনের মেসেজ গ্রহণ করতে অনুমতি দেয়। মেসেজ সিলেক্টর ব্যবহার করার মাধ্যমে, আপনি নির্দিষ্ট প্রপার্টির ভিত্তিতে মেসেজগুলো নির্বাচন করতে পারেন, যাতে শুধুমাত্র প্রয়োজনীয় মেসেজগুলোই কনজিউমার গ্রহণ করে এবং অন্য মেসেজগুলো ফিল্টার হয়ে যায়।
Message Selector হল একটি কনফিগারেবল ফিল্টার যা JMS (Java Message Service) স্পেসিফিকেশনের মধ্যে অন্তর্ভুক্ত। এটি একটি boolean expression বা filter এর মতো কাজ করে, যা মেসেজ প্রপার্টির উপর ভিত্তি করে মেসেজকে নির্বাচন বা অস্বীকার করে।
যখন একটি কনজিউমার একটি কিউ বা টপিক থেকে মেসেজ গ্রহণ করতে চায়, সে একটি সিলেক্টর প্যারামিটার যোগ করতে পারে। এটি কনজিউমারকে কেবল সেই মেসেজগুলো গ্রহণ করতে দেয় যেগুলোর প্রপার্টি তার নির্ধারিত শর্তের সঙ্গে মিলে।
যদি একটি order কিউ থাকে, যেখানে বিভিন্ন প্রকারের অর্ডার মেসেজ জমা হয় (যেমন, পেমেন্ট অর্ডার, প্রোডাক্ট অর্ডার ইত্যাদি), তাহলে কনজিউমার এমন সিলেক্টর ব্যবহার করতে পারে যাতে শুধুমাত্র প্রোডাক্ট অর্ডারগুলোই গ্রহণ করা হয়।
Message Selector হল একটি SQL-like স্ট্রিং এক্সপ্রেশন, যা WHERE
ক্লজের মতো কাজ করে। উদাহরণস্বরূপ, আপনি মেসেজের property এর মান অনুসারে একটি মেসেজ নির্বাচন করতে পারেন।
property_name = 'value'
: এটি কেবল মেসেজগুলো গ্রহণ করবে যেগুলোর নির্দিষ্ট প্রপার্টি property_name
এর মান 'value'
।property_name > value
: এটি কেবল মেসেজগুলো গ্রহণ করবে যেগুলোর নির্দিষ্ট প্রপার্টি property_name
এর মান value
এর চেয়ে বড়।property_name IN (value1, value2)
: এটি কেবল মেসেজগুলো গ্রহণ করবে যেগুলোর নির্দিষ্ট প্রপার্টি property_name
এর মান value1
বা value2
এর মধ্যে রয়েছে।ধরা যাক, একটি টপিক বা কিউতে অর্ডার সংক্রান্ত মেসেজ আসছে, এবং আপনি শুধুমাত্র priority
প্রপার্টি ৫ বা তার বেশি এমন মেসেজ নিতে চান। এর জন্য আপনি একটি সিলেক্টর ব্যবহার করতে পারেন।
import javax.jms.*;
public class MessageSelectorExample {
public static void main(String[] args) throws JMSException {
// ActiveMQ কনফিগারেশন
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
// সেশন তৈরি করা
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// ডেস্টিনেশন তৈরি করা (Queue or Topic)
Destination destination = session.createQueue("OrdersQueue");
// মেসেজ কনজিউমার তৈরি, যেখানে সিলেক্টর যুক্ত করা হয়েছে
String messageSelector = "priority > 5"; // মেসেজ সিলেক্টর
MessageConsumer consumer = session.createConsumer(destination, messageSelector);
// মেসেজ গ্রহণ করা
Message message = consumer.receive();
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
System.out.println("Received Message: " + textMessage.getText());
}
// সংযোগ বন্ধ করা
consumer.close();
session.close();
connection.close();
}
}
এখানে:
String messageSelector = "priority > 5";
: এটি একটি সিলেক্টর শর্ত, যা কেবলমাত্র সেই মেসেজ গ্রহণ করবে যেগুলোর priority
প্রপার্টির মান ৫ এর বেশি।createConsumer(destination, messageSelector)
: এটি কনজিউমার তৈরি করবে এবং শুধুমাত্র সেই মেসেজগুলো গ্রহণ করবে যেগুলি সিলেক্টরের শর্ত পূর্ণ করবে।priority
, status
, order_type
) এর ভিত্তিতে মেসেজ নির্বাচন করতে সহায়ক।priority > 5
এমন অর্ডার মেসেজ গ্রহণ করা।status = 'pending'
মেসেজ গ্রহণ করে কেবল পেনডিং অর্ডার প্রক্রিয়া করা।eventType = 'payment'
সিলেক্টর ব্যবহার করে কেবল পেমেন্ট সম্পর্কিত ইভেন্ট মেসেজ গ্রহণ করা।temperature > 100
এর মাধ্যমে কেবলমাত্র উচ্চ তাপমাত্রার সেন্সর ডাটা গ্রহণ করা।Message Selector অ্যাপাচি অ্যাকটিভএমকিউ-তে একটি অত্যন্ত শক্তিশালী ফিচার, যা কনজিউমারদের মেসেজ নির্বাচন করার জন্য SQL-like কুয়েরি ব্যবহার করতে সাহায্য করে। এর মাধ্যমে কনজিউমাররা নির্দিষ্ট প্রপার্টির ভিত্তিতে মেসেজ ফিল্টার করতে পারে, যেমন priority
, status
, বা অন্যান্য কাস্টম প্রপার্টি। এটি পারফরম্যান্স উন্নত করতে এবং সিস্টেমে নির্দিষ্ট মেসেজ ডেলিভারি নিশ্চিত করতে সাহায্য করে।
অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) একটি শক্তিশালী মেসেজ ব্রোকার যা বিভিন্ন ধরনের মেসেজ রাউটিং এবং ফিল্টারিং সমর্থন করে। Message Routing বা মেসেজ রাউটিং হল প্রক্রিয়া যার মাধ্যমে মেসেজগুলো সঠিক ভোক্তা (consumer) বা গন্তব্য (destination) তে পৌঁছানো হয়। কখনও কখনও, মেসেজ রাউটিং করার জন্য Complex Filtering (যেমন, বিভিন্ন শর্ত বা কন্ডিশনের মাধ্যমে মেসেজ বাছাই করা) ব্যবহার করা হয়, যাতে একটি ব্রোকার থেকে অনেকগুলো মেসেজে থেকে সঠিক মেসেজটি চয়ন করা যায়।
অ্যাকটিভএমকিউ-এর complex filtering ব্যবহারের মাধ্যমে আপনি সহজে মেসেজগুলোকে বিভিন্ন কন্ডিশনের ভিত্তিতে ফিল্টার করতে পারেন। এটি বিশেষভাবে তখন প্রয়োজনীয়, যখন বিভিন্ন ভোক্তা একই কিউ বা টপিক থেকে মেসেজ গ্রহণ করছেন, এবং কিছু ভোক্তার জন্য কিছু নির্দিষ্ট মেসেজ পাঠানো প্রয়োজন।
অ্যাকটিভএমকিউ JMS selectors এবং Message Properties ব্যবহার করে মেসেজ ফিল্টারিং এবং রাউটিং পরিচালনা করতে পারে। JMS selectors
একটি SQL-like syntax ব্যবহার করে মেসেজের কিছু প্রপার্টির উপর ভিত্তি করে মেসেজ ফিল্টার করার সুযোগ দেয়।
JMSMessageID
, JMSCorrelationID
, JMSPriority
, এবং কাস্টম প্রপার্টি ব্যবহার করে মেসেজ ফিল্টার করতে সাহায্য করে।age > 30
বা color = 'red'
এর মতো শর্তে মেসেজ ফিল্টার করতে পারেন।category
, যা নির্দিষ্ট শ্রেণীভুক্ত মেসেজগুলো আলাদা করতে সাহায্য করবে।JMS selector
ব্যবহার করে নির্দিষ্ট শর্ত বা কন্ডিশন দিয়ে ফিল্টার করা হয়। যেমন, category='electronics'
শর্তে শুধু electronics
ক্যাটেগরির মেসেজগুলো গ্রহণ করা যাবে।import javax.jms.*;
public class Producer {
public void sendMessage(Session session, MessageProducer producer) throws JMSException {
TextMessage message = session.createTextMessage("This is a test message");
message.setStringProperty("category", "electronics"); // Setting custom property
producer.send(message);
}
}
import javax.jms.*;
public class Consumer {
public void receiveMessage(Session session, MessageConsumer consumer) throws JMSException {
// Using a JMS selector to filter messages based on the category property
String selector = "category = 'electronics'";
MessageConsumer filteredConsumer = session.createConsumer(queue, selector);
TextMessage message = (TextMessage) filteredConsumer.receive();
if (message != null) {
System.out.println("Received message: " + message.getText());
}
}
}
এখানে:
category
নামে একটি কাস্টম প্রপার্টি যোগ করেছে, যেটি electronics
নামে সেট করা হয়েছে।category='electronics'
প্রপার্টি যুক্ত মেসেজগুলো গ্রহণ করবে।এছাড়া, অ্যাকটিভএমকিউ-এ আপনি কিউ বা টপিক কনফিগারেশনের সময় JMS selectors
ব্যবহার করতে পারেন। উদাহরণস্বরূপ:
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue=">" messageSelector="category = 'electronics'"/>
</policyEntries>
</policyMap>
</destinationPolicy>
এখানে, category = 'electronics'
মেসেজটি কেবলমাত্র সেসব কনজিউমারকে পাঠানো হবে যারা এই শর্তে সাবস্ক্রাইব করেছে।
এই ফিচারটি অ্যাকটিভএমকিউ-কে আরও গতিশীল এবং কার্যকরী মেসেজ ব্রোকার হিসেবে পরিণত করে।
অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) একটি শক্তিশালী মেসেজ ব্রোকার যা মেসেজিং সিস্টেমের মধ্যে উচ্চ কার্যকারিতা এবং ফ্লেক্সিবিলিটি প্রদান করে। মেসেজগুলির জন্য Priority (প্রায়োরিটি) এবং Expiration (এক্সপিরেশন) ব্যবহার করে, আপনি মেসেজ প্রেরণ এবং গ্রহণের প্রক্রিয়াকে আরও নির্ভুল এবং কার্যকরী করতে পারেন। এই দুটি বৈশিষ্ট্য মেসেজ হ্যান্ডলিং সিস্টেমে গুরুত্বপূর্ণ ভূমিকা পালন করে, বিশেষ করে যখন আপনাকে মেসেজের গুরুত্ব বা মেয়াদ নির্ধারণ করতে হয়।
Priority মেসেজ হ্যান্ডলিং ব্যবস্থায় মেসেজের গুরুত্ব বা অগ্রাধিকার নির্ধারণ করে। অ্যাপাচি অ্যাকটিভএমকিউতে মেসেজের জন্য Priority ব্যবহার করলে, আপনি মেসেজগুলির প্রক্রিয়াকরণে অগ্রাধিকার দিতে পারবেন। মেসেজের প্রাথমিক উদ্দেশ্য হল, যদি কোনো কিউতে একাধিক মেসেজ থাকে, তবে উচ্চ_PRIORITY মেসেজগুলি প্রথমে প্রক্রিয়া করা হবে।
অ্যাপাচি অ্যাকটিভএমকিউতে প্রতিটি মেসেজের একটি priority (0 থেকে 9 এর মধ্যে) থাকে:
যখন একটি মেসেজ কিউতে জমা হয়, তখন এটি কিউতে অন্যান্য মেসেজের তুলনায় বেশি_PRIORITY মেসেজ হিসেবে এগিয়ে যাবে, এবং আগে প্রক্রিয়া করা হবে। এটি গুরুত্বপূর্ণ যখন আপনি কিছু মেসেজকে দ্রুত প্রক্রিয়া করতে চান, যেমন জরুরি বা অগ্রাধিকারের কাজ।
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class PriorityMessageProducer {
public static void main(String[] args) throws JMSException {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("PriorityQueue");
MessageProducer producer = session.createProducer(destination);
// Set Priority (higher value means higher priority)
producer.setPriority(9); // Highest priority
TextMessage message = session.createTextMessage("This is a high priority message");
producer.send(message);
System.out.println("Message sent with priority: " + message.getJMSPriority());
connection.close();
}
}
এখানে, setPriority(9) ব্যবহার করে মেসেজের উচ্চ_PRIORITY (9) সেট করা হয়েছে। এর ফলে, এই মেসেজটি অন্যান্য মেসেজগুলোর তুলনায় আগে প্রক্রিয়া হবে।
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class PriorityMessageConsumer {
public static void main(String[] args) throws JMSException {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("PriorityQueue");
MessageConsumer consumer = session.createConsumer(destination);
Message message = consumer.receive();
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
System.out.println("Received message with priority: " + textMessage.getJMSPriority());
System.out.println("Message: " + textMessage.getText());
}
connection.close();
}
}
এই কোডে কনজিউমার কিউ থেকে মেসেজ গ্রহণ করে এবং মেসেজের priority বের করে।
Expiration মেসেজের মেয়াদ বা মেয়াদ শেষ হওয়া নির্ধারণ করে। এটি মেসেজের জন্য একটি নির্দিষ্ট সময়কাল নির্ধারণ করতে সহায়তা করে, যার পরে মেসেজটি কিউ থেকে মুছে যাবে বা অপ্রচলিত হয়ে যাবে। যদি একটি মেসেজের মেয়াদ শেষ হয়ে যায়, তবে সেটি কনজিউমারের কাছে পৌঁছানোর আগে কিউ থেকে সরিয়ে ফেলা হবে।
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class ExpirationMessageProducer {
public static void main(String[] args) throws JMSException {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("ExpirationQueue");
MessageProducer producer = session.createProducer(destination);
// Set expiration time (milliseconds)
long expirationTime = 5000; // 5 seconds
TextMessage message = session.createTextMessage("This message will expire in 5 seconds");
producer.setTimeToLive(expirationTime);
producer.send(message);
System.out.println("Message sent with expiration time: " + expirationTime);
connection.close();
}
}
এখানে, setTimeToLive(5000) ব্যবহার করে মেসেজের জন্য 5 সেকেন্ডের এক্সপিরেশন সময় সেট করা হয়েছে। এর মানে হলো, ৫ সেকেন্ডের মধ্যে মেসেজ কনজিউমারের কাছে পৌঁছানোর জন্য প্রক্রিয়াকরণ না হলে, এটি কিউ থেকে সরিয়ে ফেলা হবে।
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class ExpirationMessageConsumer {
public static void main(String[] args) throws JMSException {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("ExpirationQueue");
MessageConsumer consumer = session.createConsumer(destination);
// Receiving expired message (if any)
Message message = consumer.receive(6000); // wait for 6 seconds
if (message == null) {
System.out.println("No message received or message expired.");
} else if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
System.out.println("Received message: " + textMessage.getText());
}
connection.close();
}
}
এই কোডে, কনজিউমার ৬ সেকেন্ড অপেক্ষা করে এবং যদি মেসেজ এক্সপায়ার্ড না হয়, তবে সেটি গ্রহণ করা হয়।
বৈশিষ্ট্য | Priority (প্রায়োরিটি) | Expiration (এক্সপিরেশন) |
---|---|---|
ফাংশন | মেসেজের অগ্রাধিকার বা গুরুত্ব নির্ধারণ | মেসেজের মেয়াদ নির্ধারণ, মেয়াদ শেষ হলে মেসেজ মুছে ফেলা |
ব্যবহার | জরুরি বা গুরুত্বপূর্ণ মেসেজ আগে প্রক্রিয়া করতে ব্যবহৃত | মেসেজ কিউ থেকে অপসারণের জন্য নির্দিষ্ট সময় পর মেসেজ এক্সপায়ার করা |
মান | 0 থেকে 9 (9 সবচেয়ে বেশি) | মিলিসেকেন্ডে সময় নির্ধারণ |
কিউ প্রক্রিয়া | সর্বোচ্চ_PRIORITY মেসেজ প্রথমে প্রক্রিয়া হয় | এক্সপায়ার হওয়ার পরে মেসেজ কিউ থেকে সরিয়ে ফেলা হয় |
অ্যাপাচি অ্যাকটিভএমকিউ Priority এবং Expiration ব্যবহার করে মেসেজ হ্যান্ডলিং-এর কার্যক্ষমতা বাড়ানো যায়। Priority ব্যবহার করে মেসেজগুলির গুরুত্ব নির্ধারণ করা যায়, যেখানে উচ্চ_PRIORITY মেসেজগুলি আগে প্রক্রিয়া করা হয়। Expiration ব্যবহার করে, মেসেজের মেয়াদ নির্ধারণ করা হয়, এবং এক্সপায়ার হওয়ার পর মেসেজ কিউ থেকে সরিয়ে ফেলা হয়। এই দুটি বৈশিষ্ট্য মেসেজ প্রক্রিয়াকরণে আরও নিয়ন্ত্রণ এবং কার্যক্ষমতা নিয়ে আসে।
common.read_more